Uživatelské konvertory

Top  Prev  Next

Konvertor slouží k automatickému nahrazení písmen, slov nebo částí řádků za jiné a to obousměrně.

PSPad od verze 3.4.5 umožňuje definici konvertoru pomocí externího souboru.

 

Umístění souborů

V podadresáři Convert a jedná se o soubory s příponou .INI

V adresáři by měl být i soubor Template.IN_, který je vlastně vzorem šablony. Stačí jej tedy zkopirovat na něco.ini a upravit.

Seznam konvertorů najdete v nabídce: Nástroje \ Konverze textu \ Konvertory

 

Syntaxe konvertoru

;za středníkem se nachází komentář - nepovinné

;tučnou černou barvou jsou označena jména sekcí - neměnné

;červeně označené texty jsou neměnné

[Description]

;popis konvertoru (zobrazí se v menu)

ForwardName=Znaky na UNICODE HTML entity (WML)

BackwardName=UNICODE HTML entity na znaky (WML)

;ignorovat velikost písmen pro jednotlivé směry

;povolené hodnoty jsou 1 (ano) nebo 0 (ne)

ForwardIgnoreCase=0

BackWardIgnoreCase=0

;určuje zda budou použity konverzní tabulky nebo konverze nahradou řetězce řetězcem

;povolené hodnoty jsou 1 (konverzní tabulka) nebo 0 (nahrazování řetězců)

CharTable=0

;sekce obsahující definici co se bude převádět na co

;jednotlivé části jsou odděleny znakem |

[Conversion]

Š|Š

Ś|Ś

Ť|Ť

;zde je seznam ASCII hodnot znaků, které budou před konverzí odstraněny

[Remove chars]

10

12

;a zde je konverzni tabulka. Čísla znamenají ASCII hodnoty znaků.

;při směru konverze vpřed bude znak vlevo nahrazen znakem vravo,

;při zpětné konverzi opačně.

[Table]

134=64

135=12

 

Konverzní tabulku nebo nahrazování řetězců ?

To záleží na tom, co má konvertor dělat.

Pokud chci nahrazovat znak jiným znakem, rozhodně bude rychlejší a přesnější použít konverzní tabulku.

Pokud chci znak nahradit několika znaky (HTML entity), jsem nucen použít nahrazování řetězců.

Jestli bude použito nahrazování řetězců nebo konverzní tabulka, záleží na proměnné CharTable

 

Jak pracuje konverzní tabulka

Konvertor pracuje buď s označeným nebo celým textem.

Celý řetězec je procházen znak po znaku a nahrazován odpovídajícím znakem z konverzní tabulky, definované v sekci [Table]

 

Jak pracuje nahrazování řetězců

Konvertor pracuje buď s označeným nebo celým textem.

Na text jsou aplikovány všechny řádky ze sekce [Conversion]

Uvědomte si, že to může být pro dlouhé texty a dlouhé definice konvertoru časově náročné.

 

Úskalí definice řetězců

Jak je výše psáno, aplikují se na každý řádek všechny řádky konverze.

Hloupé příklady definice:

 

[Conversion]

B|A

A|B

 

V tomto případě se jakoby nestane nic, protože všechna písmena B jsou nejprve nahrazena za písmena A a pak všechna písmena A jsou nahrazena zpět na písmena B. Takováto definice je nesmyslná a navíc by se pro konverzi znaků lépe hodila konverzní tabulka.

 

[Conversion]

jelen|srnec

jeleni|srnci

 

V tomto případě konvertor bude pracovat opět chybně. Pokud se v textu vyskytuje slovo "jeleni", bude jeho část "jelen" nahrazena slovem "srnec" a výsledek bude "srneci", místo požadovaného "srnci". V tomto případě stačí prohodit řádky v definici.